home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / dev / misc / LEDA_gene.lha / LEDA-3.1c-generic / prog / plane / simplex.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-05  |  2.4 KB  |  90 lines

  1.  
  2. #include <LEDA/simplex.h>
  3.  
  4.  
  5.  
  6. main()
  7. {
  8.   cout << "Maximize               \n";
  9.   cout << "                  |x1| \n";
  10.   cout << "                  |x2| \n";
  11.   cout << "                  |. | \n";
  12.   cout << "(c1 c2 ...  cn) x |. | \n";
  13.   cout << "                  |. | \n";
  14.   cout << "                  |. | \n";
  15.   cout << "                  |xn| \n";
  16.   newline;
  17.  
  18.   cout << "constraints:\n";
  19.   newline;
  20.  
  21.   cout << "     <-------  n  -------->                    \n";
  22.   cout << "                                               \n";
  23.   cout << "    |.......................|   |x1|       |b1|\n";
  24.   cout << "    |.......................|   |x2|       |b2|\n";
  25.   cout << "  i |.......         .......|   |. |  <=   |. |\n";
  26.   cout << "    |.......         .......|   |. |       |. |\n";
  27.   cout << "    |.......         .......|   |. |       |. |\n";
  28.   cout << "                                               \n";
  29.   cout << "    |.......         .......|   |. |       |. |\n";
  30.   cout << "    |.......         .......|   |. |       |. |\n";
  31.   cout << "  j |.......    A    .......| x |. |  >=   |. |\n";
  32.   cout << "    |.......         .......|   |. |       |. |\n";
  33.   cout << "    |.......         .......|   |. |       |. |\n";
  34.   cout << "                                               \n";
  35.   cout << "    |.......         .......|   |. |       |. |\n";
  36.   cout << "    |.......         .......|   |. |       |. |\n";
  37.   cout << "  k |.......         .......|   |. |  ==   |. |\n";
  38.   cout << "    |.......................|   |. |       |. |\n";
  39.   cout << "    |.......................|   |xm|       |bm|\n";
  40.   newline;
  41.   newline;
  42.  
  43.   int n = read_int("number of variables n = ");
  44.   newline;
  45.  
  46.   int i = read_int("number of <= relations i = ");
  47.   int j = read_int("number of >= relations j = ");
  48.   int k = read_int("number of == equations k = ");
  49.  
  50.   int m = i+j+k;
  51.  
  52.   matrix A(m,n);
  53.   vector b(m);
  54.   vector c(n);
  55.  
  56.   cout << string("(%d x %d) - Matrix A:\n",m,n);
  57.  
  58.   for (int z = 0 ; z<m ; z++ )
  59.   { if (z < i) 
  60.        cout << string("<= row %d : ",z);
  61.     else 
  62.        if (z < i+j) 
  63.           cout << string(">= row %d : ",z);
  64.        else 
  65.           cout << string("== row %d : ",z);
  66.  
  67.        for (int s = 0 ; s<n ; s++ ) cin >> A(z,s);
  68.    }
  69.   newline;
  70.  
  71.  
  72.   cout << string("%d-vector b: ",m);
  73.   cin >> b;
  74.   newline;
  75.  
  76.   cout << string("%d-vector c: ",n);
  77.   cin >> c;
  78.   newline;
  79.  
  80.  
  81.   list<matrix> S = SIMPLEX(A,i,j,k,b,c);
  82.  
  83.  
  84.   if (!S.empty())
  85.     S.print ();
  86.   else
  87.     cout << "Keine Loesung !";
  88.  
  89. }
  90.